Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

triangle_stripper::tri_stripper Class Reference

#include <tri_stripper.h>

Collaboration diagram for triangle_stripper::tri_stripper:

Collaboration graph
[legend]
List of all members.

Public Types

typedef unsigned short indice
typedef std::vector< indiceindices
typedef std::vector< primitivesprimitives_vector
enum  primitive_type { PT_Triangles = 0x0004, PT_Triangle_Strip = 0x0005 }

Public Member Functions

 tri_stripper (const indices &TriIndices)
void SetCacheSize (const size_t CacheSize=16)
void SetMinStripSize (const size_t MinStripSize=2)
void Strip (primitives_vector *out_pPrimitivesVector)

Private Types

typedef common_structures::graph_array<
triangle, char > 
triangles_graph
typedef common_structures::heap_array<
triangle_degree, _cmp_tri_degree_gt
triangles_heap
typedef std::vector< triangle_edgetriangle_edges
typedef std::vector< size_t > triangle_indices
typedef std::deque< indiceindices_cache

Private Member Functions

void InitCache ()
void InitTriGraph ()
void InitTriHeap ()
void Stripify ()
void AddLeftTriangles ()
void LinkNeighboursTri (const triangle_edges &TriInterface, const triangle_edge Edge)
void MarkTriAsTaken (const size_t i)
triangle_edge GetLatestEdge (const triangle &Triangle, const triangle_strip::start_order Order) const
triangle_strip FindBestStrip ()
triangle_strip ExtendTriToStrip (const size_t StartTriPos, const triangle_strip::start_order StartOrder)
void BuildStrip (const triangle_strip TriStrip)
void AddIndice (const indice i)
void AddIndiceToCache (const indice i, bool CacheHitCount=false)
void AddTriToCache (const triangle &Tri, const triangle_strip::start_order Order)
void AddTriToIndices (const triangle &Tri, const triangle_strip::start_order Order)

Private Attributes

const indicesm_TriIndices
size_t m_MinStripSize
size_t m_CacheSize
primitives_vector m_PrimitivesVector
triangles_graph m_Triangles
triangles_heap m_TriHeap
triangle_indices m_NextCandidates
indices_cache m_IndicesCache
size_t m_StripID
size_t m_CacheHits

Friends

struct _cmp_tri_interface_lt

Member Typedef Documentation

typedef unsigned short triangle_stripper::tri_stripper::indice
 

typedef std::vector<indice> triangle_stripper::tri_stripper::indices
 

typedef std::deque<indice> triangle_stripper::tri_stripper::indices_cache [private]
 

typedef std::vector<primitives> triangle_stripper::tri_stripper::primitives_vector
 

typedef std::vector<triangle_edge> triangle_stripper::tri_stripper::triangle_edges [private]
 

typedef std::vector<size_t> triangle_stripper::tri_stripper::triangle_indices [private]
 

typedef common_structures::graph_array<triangle, char> triangle_stripper::tri_stripper::triangles_graph [private]
 

typedef common_structures::heap_array<triangle_degree, _cmp_tri_degree_gt> triangle_stripper::tri_stripper::triangles_heap [private]
 


Member Enumeration Documentation

enum triangle_stripper::tri_stripper::primitive_type
 

Enumeration values:
PT_Triangles 
PT_Triangle_Strip 


Constructor & Destructor Documentation

triangle_stripper::tri_stripper::tri_stripper const indices   TriIndices [inline]
 


Member Function Documentation

void triangle_stripper::tri_stripper::AddIndice const indice    i [inline, private]
 

void triangle_stripper::tri_stripper::AddIndiceToCache const indice    i,
bool    CacheHitCount = false
[inline, private]
 

void triangle_stripper::tri_stripper::AddLeftTriangles   [private]
 

void triangle_stripper::tri_stripper::AddTriToCache const triangle   Tri,
const triangle_strip::start_order    Order
[inline, private]
 

void triangle_stripper::tri_stripper::AddTriToIndices const triangle   Tri,
const triangle_strip::start_order    Order
[inline, private]
 

void triangle_stripper::tri_stripper::BuildStrip const triangle_strip    TriStrip [private]
 

tri_stripper::triangle_strip triangle_stripper::tri_stripper::ExtendTriToStrip const size_t    StartTriPos,
const triangle_strip::start_order    StartOrder
[private]
 

tri_stripper::triangle_strip triangle_stripper::tri_stripper::FindBestStrip   [inline, private]
 

tri_stripper::triangle_edge triangle_stripper::tri_stripper::GetLatestEdge const triangle   Triangle,
const triangle_strip::start_order    Order
const [inline, private]
 

void triangle_stripper::tri_stripper::InitCache   [private]
 

void triangle_stripper::tri_stripper::InitTriGraph   [private]
 

void triangle_stripper::tri_stripper::InitTriHeap   [private]
 

void triangle_stripper::tri_stripper::LinkNeighboursTri const triangle_edges   TriInterface,
const triangle_edge    Edge
[private]
 

void triangle_stripper::tri_stripper::MarkTriAsTaken const size_t    i [private]
 

void triangle_stripper::tri_stripper::SetCacheSize const size_t    CacheSize = 16 [inline]
 

void triangle_stripper::tri_stripper::SetMinStripSize const size_t    MinStripSize = 2 [inline]
 

void triangle_stripper::tri_stripper::Strip primitives_vector   out_pPrimitivesVector
 

void triangle_stripper::tri_stripper::Stripify   [private]
 


Friends And Related Function Documentation

friend struct _cmp_tri_interface_lt [friend]
 


Member Data Documentation

size_t triangle_stripper::tri_stripper::m_CacheHits [private]
 

size_t triangle_stripper::tri_stripper::m_CacheSize [private]
 

indices_cache triangle_stripper::tri_stripper::m_IndicesCache [private]
 

size_t triangle_stripper::tri_stripper::m_MinStripSize [private]
 

triangle_indices triangle_stripper::tri_stripper::m_NextCandidates [private]
 

primitives_vector triangle_stripper::tri_stripper::m_PrimitivesVector [private]
 

size_t triangle_stripper::tri_stripper::m_StripID [private]
 

triangles_graph triangle_stripper::tri_stripper::m_Triangles [private]
 

triangles_heap triangle_stripper::tri_stripper::m_TriHeap [private]
 

const indices& triangle_stripper::tri_stripper::m_TriIndices [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Sep 12 20:19:29 2005 for Destiny3D by doxygen1.3-rc3